<?php
/**
 * Smarty plugin
 * @package Smarty
 * @subpackage plugins
 */

/**
 * Smarty assign_smarty_interface core plugin
 *
 * Type:     core<br>
 * Name:     assign_smarty_interface<br>
 * Purpose:  assign the $smarty interface variable
 * @param array Format: null
 * @param Smarty
 */
function smarty_core_assign_smarty_interface($params, &$smarty) {
	if (isset ( $smarty->_smarty_vars ) && isset ( $smarty->_smarty_vars ['request'] )) {
		return;
	}
	
	$_globals_map = array ('g' => 'HTTP_GET_VARS', 'p' => 'HTTP_POST_VARS', 'c' => 'HTTP_COOKIE_VARS', 's' => 'HTTP_SERVER_VARS', 'e' => 'HTTP_ENV_VARS' );
	
	$_smarty_vars_request = array ();
	
	foreach ( preg_split ( '!!', strtolower ( $smarty->request_vars_order ) ) as $_c ) {
		if (isset ( $_globals_map [$_c] )) {
			$_smarty_vars_request = array_merge ( $_smarty_vars_request, $GLOBALS [$_globals_map [$_c]] );
		}
	}
	$_smarty_vars_request = @array_merge ( $_smarty_vars_request, $GLOBALS ['HTTP_SESSION_VARS'] );
	
	$smarty->_smarty_vars ['request'] = $_smarty_vars_request;
}

/* vim: set expandtab: */

?>
